package com.xuanxu.blogs.module.article.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xuanxu.blogs.module.article.entity.dao.ArticleClassifyDao;

import java.util.List;

/**
 * @author XuanXu
 * @version 1.0
 * @date 2024-08-21 15:32
 */
public interface ArticleClassifyService {

    /**
     * 分页查询分类
     * @param currentPage 页码
     * @param pageSize 页面大小
     * @param articleClassifyDao 查询条件
     * @return 分页 分类 dao 对象
     */
    IPage<ArticleClassifyDao> pageSelectArticleClassify(Long currentPage, Long pageSize,
                                                        ArticleClassifyDao articleClassifyDao);

    /**
     * 新增文章分类
     * @param articleClassifyDao 文章分类 dao
     * @return true：成功，false：失败
     */
    boolean insertArticleClassify(ArticleClassifyDao articleClassifyDao);

    /**
     * 修改文章分类
     * @param articleClassifyDao 文章分类 dao
     * @return true：成功，false：失败
     */
    boolean updateArticleClassifyById(ArticleClassifyDao articleClassifyDao);

    /**
     * 根据文章分类ID批量删除文章分类
     *
     * @param articleClassifyId 文章分类ID
     * @return true：成功，false：失败
     */
    boolean deleteArticleClassifyById(Long articleClassifyId);

    /**
     * 批量删除文章分类
     * @param articleClassifyIdList 文章分类ID列表
     * @return true：成功，false：失败
     */
    boolean batchDeleteArticleClassifyById(List<Long> articleClassifyIdList);

    /**
     * 根据文章分类ID查询文章分类
     * @param articleClassifyIdList 文章分类ID列表
     * @return List<ArticleClassifyDao>
     */
    List<ArticleClassifyDao> selectArticleClassifyByArticleClassifyId(List<Long> articleClassifyIdList);

    /**
     * 查询文章分类
     * @param articleClassifyDao 查询条件
     * @return List<ArticleClassifyDao>
     */
    List<ArticleClassifyDao> selectArticleClassify(ArticleClassifyDao articleClassifyDao);
}
